package com.ddxcloud.movie.data.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.Version;
import com.ddxcloud.common.mybatis.entity.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

@Data
@EqualsAndHashCode(callSuper = true)
public class RefundOrder extends BaseEntity {

    /**
     * 主键ID
     */
    @Schema(description = "主键ID")
    @TableId
    private Long id;

    /**
     * 订单编号
     */
    @Schema(description = "订单编号")
    private String orderSn;

    /**
     * 产品名称
     */
    @Schema(description = "产品名称")
    private String productName;

    /**
     * 订单ID（外键）
     */
    @Schema(description = "订单ID（外键）")
    private Long orderId;

    /**
     * 支付方式 1.支付宝 2.微信支付
     */
    @Schema(description = "支付方式 1.支付宝 2.微信支付")
    private Integer payMethod;

    /**
     * 退款金额（分）
     */
    @Schema(description = "退款金额（分）")
    private Integer refundAmount;

    /**
     * 退款状态 0.待退款 1.已退款 2.退款失败（超时）
     */
    @Schema(description = "退款状态 0.待退款 1.已退款 2.退款失败（超时）")
    private Integer refundStatus;

    /**
     * 第三方退款流水单号
     */
    @Schema(description = "第三方退款流水单号")
    private String outRefundNo;

    /**
     * 退款时间
     */
    @Schema(description = "退款时间")
    private Date refundTime;

    /**
     * 回调地址
     */
    @Schema(description = "回调地址")
    private String callbackUrl;

    /**
     * 客户端IP
     */
    @Schema(description = "客户端IP")
    private String clientIp;

    /**
     * 退款原因
     */
    @Schema(description = "退款原因")
    private String reason;

    /**
     * 版本号
     */
    @Schema(description = "版本号")
    @Version
    private Integer version;
}
